package com.pine.app.module.security.oauth.config.properties;



import com.pine.app.module.security.core.common.AuthConstant;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * @Description: 登录配置信息
 * @Author: xiaoyuan
 * @Date: 2019/12/26 10:27
 */
@Data
@Configuration
@ConfigurationProperties(prefix = LoginProperties.LOGIN_PROPERTIES)
public class LoginProperties {

    public static final String LOGIN_PROPERTIES = "pine.oauth";

    private  String ignoreLoginPath;

    private String loginPage;

    private String loginErrorPage;

    /**
     * 登陆攻击配置
     */
    private LoginAttemp attemp = new LoginAttemp();
    /**
     *  记住我配置
     */
    private RememberMe rememberMe = new RememberMe();



    /**
     * 记住我相关
     */
    @Data
    public class RememberMe {
        /**
         * 是否启用记住我
         */
        private boolean enable = true;
        /**
         *  可以记住我多久 单位毫秒  默认为8天
         */
        private Long expire = 8 * 24 * 60 * 60 * 1000L;
    }



    /**
     * @Description: 登陆攻击配置
     * @Author: xyjxust
     * @Date: 2019/3/15 10:41
     */
    @Data
    public class LoginAttemp {
        /**
         *  是否启用防登陆攻击配置
         */
        private boolean enable = false;
        /**
         *  超过多少此讲被锁定
         */
        private Integer timers = AuthConstant.LOGIN_ATTEMP_TIMES;
        /**
         *  锁定之后的过期时间是多少
         */
        private Long expire = AuthConstant.LOGIN_ATTEMP_EXPIRE;
    }

}
